package us.kg.kotoriforest.springmvc.restful.service;

import us.kg.kotoriforest.springmvc.restful.pojo.Employee;

import java.util.List;

/**
 * @author Kotori rotroutine@163.com
 * @since 2025/2/4
 */
public interface EmployeeService {
    /**
     * 根据id查询员工
     *
     * @param id 员工id
     * @return 员工对象 如果不存在返回null
     */
    Employee getEmployeeById(long id);

    /**
     * 查询所有员工
     *
     * @return 员工列表 如果不存在返回空列表
     */
    List<Employee> getEmployees();

    /**
     * 添加员工
     *
     * @param employee 员工对象
     * @return 添加成功返回true，否则返回false
     */
    boolean addEmployee(Employee employee);

    /**
     * 更新员工 如果员工的相关信息为null则更新为null
     *
     * @param employee 员工对象
     * @return 更新成功返回true，否则返回false
     */
    boolean updateEmployeeDirectly(Employee employee);

    /**
     * 更新员工 如果员工的相关信息为null则保持原状不更新
     *
     * @param employee 员工对象
     * @return 更新成功返回true，否则返回false
     */
    boolean updateEmployeeSensitive(Employee employee);

    /**
     * 删除员工
     *
     * @param id 员工id
     * @return 删除成功返回true，否则返回false
     */
    boolean deleteEmployeeById(long id);
}
